// 用户相关逻辑
const cloud = wx.cloud
module.exports = {
    /**
     * 注册用户
     * @param {*} openid 
     */
    create: (data) => {
        let { nickname, avatar } = data
        cloud.callFunction({
            name: 'User',
            data: {
                type: 'user-add',

            }
        })
    },

    /**
     * 查询指定用户
     */
    queryByOpenId: (openid) => {

        cloud.callFunction({
			name: 'user',
			data: {
				type: 'query',
			}
        })
        .then((res)=>{
            console.log(res)
            wx.setStorage({
                key: "user",
                data: res.result
            })
        })
    },

    // 根据用户ID查询
    queryById: () => {},

    // 根据用户手机查询
    queryByMobile: () => {},

    // 漫无目的的查询语句
    queryDiff: () => {},

    // 用户注册
    create: (data) => {
        // console.log("传入数据: ", data)
        return new Promise((resolve, reject) => {
            wx.cloud.callFunction({
                name: 'User',
                data: {
                    $url: 'add',
                    nickname: data.nickname,
                    avatar: data.avatar
                }
            })
            .then((ret) => {
                console.log("调试输出: ", ret)
                if (ret.result.code == 1) {
                    resolve(1)
                } else {
                    reject(0)
                }
            })
        });

    },

    // 用户登录
    login: (isRefresh = false) => {
        return new Promise((resolve, reject) => {
            let userStorage = wx.getStorageSync('user') || null;
            if (userStorage && !isRefresh) {
                console.log("从缓存读取")
                resolve(userStorage)
            } else {
                wx.cloud.callFunction({
                    name: 'User',
                    data: {
                        $url: 'login'
                    }
                })
                .then(({ result }) => {
                    console.log("重新读取数据库: ", result)
                    if (result.code == 1) {
                        wx.setStorage({
                            key: 'user',
                            data: result.data
                        })
                        resolve(result.data)
                    } else {
                        reject("未注册")
                    }
                })
            }
        });

        
    },

    // 用户退出
    logout: () => {

    },

    // 完善会员信息
    complete: (data) => {
        let { mobile, nickname, avatar, gender } = data;
        // 逻辑
    }




    /**
    
        status: 0 未注册
                1 已注册已完善会员资料
                2 已注册未完善
        state:
        会员登录状态: 已登录
    
        用户授权登录
            ├─ 未注册
                ├─ 用户注册
            ├─ 已注册
                ├─ 已完善会员信息
                ├─ 未完善会员信息
                    ├─ 完善信息
            ├─ 退出登录

     **/ 
}